// pages/article/article.js
//导入共享数据包
import { storeBindingsBehavior } from 'mobx-miniprogram-bindings'
import { store } from '../../store/store'

Page({

    //共享数据相关配置
    options: {
        styleIsolation: 'shared'
    },
    
    behaviors: [storeBindingsBehavior],

    //引入需要的共享数据
    storeBindings: {
        store,
        fields: {
            token: 'token'
        },
        actions: {
            
        }
    },

    /**
     * 页面的初始数据
     */
    data: {
        //文章数据
        title: null,
        info: null,
        content: null,
    },

    //监听文章标题修改
    onTitleChange(e) {
        this.setData({
            title: e.detail
        })
    },

    //监听文章作者修改
    onAuthorChange(e) {
        this.setData({
            author: e.detail
        })
    },

    //监听文章简介修改
    onInfoChange(e) {
        this.setData({
            info: e.detail
        })
    },

    //监听文章内容修改
    onContentChange(e) {
        this.setData({
            content: e.detail
        })
    },

    //表单提交方法
    submit(event){
        console.log(this.data)

        //判断用户是否登录
        if(!store.token) {
            wx.showToast({
                title: '用户未登录！',
                icon: 'error'
              })
            return
        }

        //检查提交参数
        if(!this.data.title) {
            wx.showToast({
                title: '文章标题为空！',
                icon: 'error'
              })
              return
        }
        if(!this.data.info) {
            wx.showToast({
                title: '文章简介为空！',
                icon: 'error'
              })
              return
        }
        if(!this.data.content) {
            wx.showToast({
                title: '文章内容为空！',
                icon: 'error'
              })
              return
        }

        //展示加载框
        wx.showLoading({
          title: '文章发布中...',
        })

        //请求后端
        wx.request({
          url: `${store.programURL}/article/add`,
          method: 'POST',
          data: {
              title: this.data.title,
              authorName: store.userInfo.nickname,
              info: this.data.info,
              content: this.data.content,
              authorAvatar: store.userInfo.avatarUrl
          },
          header: {
            authentication: store.token
          },
          success: (e) => {
              console.log(e)
              if(e.data.code != 1) {
                wx.showToast({
                    title: '上传失败！',
                    icon: 'error'
                  })
                return
              }
              wx.showToast({
                title: '上传成功！',
              })
              //上传成功后清空页面数据
              this.setData({
                title: null,
                author: null,
                info: null,
                content: null
              })
          },
          complete: () => {
            wx.hideLoading()
          }
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        if(!store.token){
            wx.showToast({
                title: '用户未登录！',
                icon: 'error'
              })
        }
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})